home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 6
/
Amiga Format AFCD06 (Nov 1996, Issue 90).iso
/
serious
/
shareware
/
archivers
/
makesfx
/
makesfx.doc
< prev
next >
Wrap
Text File
|
1992-09-03
|
4KB
|
93 lines
MakeSFX v1.0 by Kyzer/CSG
MakeSFX is a very simple creator for SelF eXtracting archives. It is a very
simple, AmigaDOS script that generates an assembly language file of a self
extracting archive, and then assembles it into a real program, which should
be compressed with a packer, eg Imploder 4, StoneCracker, CrunchMania, etc...
The main points about packing like this (if you need a SFX archive in the
first place! remember that passing archives to people is much better to use
LhA or LZX, but they are quite big...) is that unpacking is VERYFAST! It
goes at the maximum speed possible, limited only by hardware! :)
REQUREMENTS:
Needs to be run from the shell, with a T: assign set up (usually is, if not
try 'makedir ram:t' and 'assign t: ram:') and the commands 'list', 'delete'
and 'execute' to be available. On a Workbench 1.3 system the commands 'set',
'unset', 'cd', 'echo', 'if', 'else' and 'endif' must also be available (these
are built in to 2.0+)
The programs 'blink' and 'a68k' must be in your path (eg your C: drawer)
INSTALLATION:
Copy the files 'a68k', 'blink' and 'makesfx' to your c: drawer.
USAGE:
Usage is via the Shell, as follows:
execute MakeSFX name dir pattern
'name' is the name to give the resultant file, the extension '.exe' is added.
'dir' is the directory to pack
'pattern' is an AmigaDOS wildcard for the files to pack.
All args are optional, eg
"MakeSFX" creates a file 'make.exe' of all the files in the current directory.
"MakeSFX fish" creates a file called 'fish.exe' of all the files in the
current directory
"MakeSFX fish ram:" creates a file called 'fish.exe' of all the files in ram:
"MakeSFX fish ram: #?.c" creates a file called 'fish.exe' of all the files
ending in '.c' in ram:
WARNING:
MakeSFX only creates 'flat' archives, it doesn't recurse into directories.
Why? Well, it's the executable file that is the problem. If you are a
programmer and try to write a file 'fish/fart/flap/hello.txt', the whole
path (fish/fart/flap/) must exist, else the file is not written. Programs
like LhA solve this by recurively creating the directories that make up the
path if they don't exist, but of course this is quite a lot of hard work :)
So don't edit the MakeSFX script to recurse (this is simple), the resultant
file won't work!
IDIOT EXPLANATION:
If you have the files:
file1
file2
dir1/file3
With MakeSFX, only the files 'file1' and 'file2' will be added.
DISCLAIMER:
Don't blame me if anything goes wrong, it works for me, and it's written in
AMIGADOS!!! Nothing evil goes on, if it don't work for you then you're too
stupid to work it right!
TECHINAL:
If you want to, I have included a script 'MakeSFX.phx' which is the same as
'MakeSFX' except it uses the PhxAss assembler, by Frank Wille. I would have
loved to use the 'FreePhxAss' which is freeware, but sadly it has no 'incbin'
directive, which is needed. And because PhxAss is shareware, I cannot include
it in this archive. But PhxAss is uncrippeled in an way, so you can get the
PhxAss archive from aminet (dev/asm/PhxAss*.lha) and use it instead, for a
8000% speed increase in assembling (a68k is FUCKING slow! and PhxAss has built
in linking, well, more like a68k doesn't do much work and PhxAss does, because
all assemblers nowadays have built in reloc-generation, there is almost no
need to have a linker, only the C programmers need this stupid program. Who
uses premade link-code anyway?!) Note with modifications ou can use MakeSFX
with ANY good assembler.
DISTRIBUTION:
Entirely free, not even a copyright. I don't give a hoot what you do with it,
indeed I'd prefer to see someone write a full SFX program from it, preferably
to directly unpack LhA or LZX files, using overlayed files to reduce memory
needs and have builtin recursive directory creation for non-existing paths :)
AUTHOR:
Write: Kyzer/CSG, 49 Fairview Road, AB228ZG, Scotland.
Phone: (01224) 704117 or +441224704117 internationally, after 7pm GMT
INetd: kyzer@adamant (Adamant: telnet 130.83.9.19 port 4711)
GOODBYE:
Bye.